'use strict';

const Controller = require('egg').Controller;

const jwt = require('jsonwebtoken');

class HomeController extends Controller {
  async index() {
    const { ctx } = this;
    ctx.body = 'hi, egg';
  }
  async login(){
        let {ctx,service} = this;
        let {username,password} = ctx.request.body;
        if(username && password){
            let target = await service.home.login(username,password);
            if(target.length){
                let token = jwt.sign({role_id:target[0].role_id},'lixd',{expiresIn:60*60*5})
                ctx.body = {
                    code:1,
                    msg:'登录成功',
                    role_id:target[0].role_id,
                    token
                }  
            }else{
                ctx.body = {
                    code:1,
                    msg:'登录失败'
                } 
            }
        }else{
            ctx.body = {
                code:2,
                msg:'参数有误'
            }
        }
  }
  async reslist(){
      let {ctx,service} = this;
      let {role_id} = ctx.query;
    // let {role_id} = ctx.info
      if(role_id){
            let list = await service.home.reslist(role_id);
            ctx.body = {
                code:1,
                data:list
            }
      }else{
          ctx.body = {
              code:2,
              msg:'参数有误'
          }
      }
  }
}

module.exports = HomeController;

/**
 * 1.登录注册
 * 
 *      加密 密码不能明文显示  extend/helper.js
 * 
 * 2.增删改查加分页  sql语句
 * 
 *      博客项目
 * 
 * 3.token 鉴权  中间件
 * 
 *  jsonwebtoken   jwt.sign  jwt.verify
 * 
 * 4.权限  （1.根据不同的角色显示不同的菜单 2.根据不同的角色，操作接口权限不一样）
 * 
 * 理论（一定要过的）
 * 
 * */ 
